#!/bin/bash # DISCLAIMER : It is recomended to test this script on a test machine. # ManageEngine will not be responsible for any damage/loss # to the data/setup based on the behavior of the script. # # DESCRIPTION : Script to add the local sudo user in the system in linux agent machines. # # # ARGUMENT(S): # 1) To add local sudo user in the system # # ARGUMENT FORMAT: # EXAMPLE : test # # Edit the line password="passwd" to password="your_password" in this script. # IMPORTANT NOTE: # If password contains dollar symbol, kindly use escape character before $, else script will fail. # For Example : If user password is Manageengine$ ,then Edit the line password="Manageengine\$" # If user password is Manageengine$$ ,then Edit the line password="Manageengine\$\$" # # RETURN VALUE MEANING # # 0 Sudo user added successfully # 1 Error while adding sudo user # 2 Invalid arguments. # NOTE : # To see the script output, Kindly enable the option Enable logging in Troubleshooting while deploying configuration. errorCode=2 euid=$(id -u) for i in 1; do # check sudo access if [ "$euid" -ne 0 ]; then echo "This script must be run as root" break fi if [ $# -ne 1 ]; then echo "Incorrect Usage : Arguments mismatch." echo "Refer ARGUMENT(S) section in the script." break fi errorCode=0 username=$1 # Edit the line password="passwd" to password="your_password" in this script. # If password contains dollar symbol, kindly use escape character before $, else script will fail. # For Example : If user password is Manageengine$ ,then Edit the line password="Manageengine\$" # If user password is Manageengine$$ ,then Edit the line password="Manageengine\$\$" password="passwd" # check given user exist or not doesUserExist=$(grep -c '^'"$username"':' /etc/passwd) if [ $doesUserExist -eq 1 ]; then echo "User: $username already exists" errorCode=1 break fi export HISTIGNORE="*passwd*" # adding user if [ -e /usr/sbin/adduser ]; then adduser $username --gecos "$username,RoomNumber,WorkPhone,HomePhone" --disabled-password # fallback if adduser fails if [ $? -ne 0 ]; then useradd -m -d /home/"$username" -s /bin/bash "$username" if [ $? -eq 0 ]; then echo "Added user successfully by useradd" fi fi else useradd -m -d /home/"$username" -s /bin/bash "$username" fi # adding user as sudo adduser "$username" sudo if [ $? -ne 0 ]; then usermod -aG sudo "$username" # fallback if sudo fails if [ $? -ne 0 ]; then echo "$username ALL=(ALL) ALL" >>/etc/sudoers echo "Added user in sudoers file" fi fi echo "$username":$password | chpasswd # fallback if chpasswd fails if [ $? -ne 0 ]; then echo -e "$password\n$password" | passwd "$username" if [ $? -ne 0 ]; then echo "$password\n$password" | passwd $username fi if [ $? -eq 0 ]; then echo "Changed password successfully by passwd" fi fi if [ $? -eq 0 ]; then echo "Sudo user: $username added successfully" else echo "Error while adding sudo user: $username" errorCode=1 fi done errorFunc() { return $errorCode } errorFunc